<< (побитовое смещение влево)

Доступность

Flash Player 5.

Синтаксис

expression1 << expression2

Параметры

expression1 Число, или выражение, которое нужно сместить влево.

expression2 Число, или выражение, конвертируемое в целое число от 0 до 31.

Возвращает

32-битное целое число.

Описание

Оператор (побитовый), конвертирует expression1 и expression2 в 32-битное целое число и смещает все биты выражения expression1 влево в соответствии с числом, получающимся при преобразовании expression2. Освобождённые в результате операции битовые позиции заполняются нулями, если наименее значимый бит (самый правый) выражения expression1 будет 0, или заполняются единицами, если наименее значимый бит будет 1. Смещение значения на одну позицию влево, идентично умножению на 2, пренебрегая остатком.

Числа с плавающей точкой конвертируются в целые путём отбрасывания значащих цифр справа от точки. Положительные целые числа конвертируются в 16-битное беззнаковое целое число, с максимальным значением 4294967295 или 0xFFFFFFFF; значения большие, чем максимум, отбрасывают лишние значащие цифры до конвертации. Отрицательные целые числа конвертируются в 16-битное беззнаковое целое число, с минимальным значением -2147483648 или 0x800000000; числа имеющие значение меньшие, чем минимум, отбрасывают лишние значащие цифры до конвертации.

Возвращаемое значение интерпретируется как двоичное число, имеющее значение в интервале от -2147483648 до 2147483647.

Для дополнительной информации, смотрите "Старшинство и ассоциативность операторов" в Использовании ActionScript во Флэш .

Пример

Пример смещения целого числа 1 на десять бит влево :

x = 1 << 10

Результат этой операции x = 1024. Это потому, что десятичное число 1 равняется двоичному числу 1, двоичное число 1, смещённое на 10 бит влево, будет равняться двоичному числу 10000000000, а двоичное число 10000000000 равняется десятичному числу 1024.

В следующем примере целое число 7 смещается на 8 бит влево :

x = 7 << 8

В результате этой операции x = 1792. Он таков потому, что десятичное число 7 равняется двоичному числу 111, двоичное число 111, смещённое на 8 бит влево, будет равняться двоичному числу 11100000000, а двоичное число 11100000000 равняется десятичному числу 1792.

В следующем примере биты были сдвинуты на две позиции влево :

// 2 бинарное == 0010
// 8 бинарное == 1000
trace(2 << 2);  // выводится: 8

См.также

>>= (побитовое смещение вправо и присвоение), >> (побитовое смещение вправо), <<= (побитовое смещение влево и присвоение), >>> (побитовое смещение вправо без знака), >>>= (побитовое смещение вправо без знака и присвоение)